home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / pvm34b3.zip / pvm34b3 / pvm3 / src / pvmfrag.h < prev    next >
C/C++ Source or Header  |  1997-07-22  |  3KB  |  97 lines

  1.  
  2. /* $Id: pvmfrag.h,v 1.6 1997/06/25 22:09:38 pvmsrc Exp $ */
  3.  
  4. /*
  5.  *         PVM version 3.4:  Parallel Virtual Machine System
  6.  *               University of Tennessee, Knoxville TN.
  7.  *           Oak Ridge National Laboratory, Oak Ridge TN.
  8.  *                   Emory University, Atlanta GA.
  9.  *      Authors:  J. J. Dongarra, G. E. Fagg, M. Fischer
  10.  *          G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
  11.  *         P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
  12.  *                   (C) 1997 All Rights Reserved
  13.  *
  14.  *                              NOTICE
  15.  *
  16.  * Permission to use, copy, modify, and distribute this software and
  17.  * its documentation for any purpose and without fee is hereby granted
  18.  * provided that the above copyright notice appear in all copies and
  19.  * that both the copyright notice and this permission notice appear in
  20.  * supporting documentation.
  21.  *
  22.  * Neither the Institutions (Emory University, Oak Ridge National
  23.  * Laboratory, and University of Tennessee) nor the Authors make any
  24.  * representations about the suitability of this software for any
  25.  * purpose.  This software is provided ``as is'' without express or
  26.  * implied warranty.
  27.  *
  28.  * PVM version 3 was funded in part by the U.S. Department of Energy,
  29.  * the National Science Foundation and the State of Tennessee.
  30.  */
  31.  
  32. /*
  33.  *    pvmfrag.h
  34.  *
  35.  *    Frag buffer util.
  36.  *
  37. $Log: pvmfrag.h,v $
  38.  * Revision 1.6  1997/06/25  22:09:38  pvmsrc
  39.  * Markus adds his frigging name to the author list of
  40.  *     every file he ever looked at...
  41.  *
  42.  * Revision 1.5  1997/04/30  21:26:28  pvmsrc
  43.  * SGI Compiler Warning Cleanup.
  44.  *
  45.  * Revision 1.4  1997/04/24  20:57:55  pvmsrc
  46.  * added filed fr_rip to frag structure for frags received inplace
  47.  *
  48.  * Revision 1.3  1997/03/06  21:12:13  pvmsrc
  49.  *             added fr_seq and fr_src members to frag structure.
  50.  *             used by mppchunk.c for ordering. future for attached
  51.  *             sequence numbers on every fragment.
  52.  *
  53.  * Revision 1.2  1997/01/28  19:28:21  pvmsrc
  54.  * New Copyright Notice & Authors.
  55.  *
  56.  * Revision 1.1  1996/09/23  23:43:29  pvmsrc
  57.  * Initial revision
  58.  *
  59.  * Revision 1.3  1995/05/17  16:43:54  manchek
  60.  * added support for CSPP shared memory
  61.  *
  62.  * Revision 1.2  1994/06/03  20:38:25  manchek
  63.  * version 3.3.0
  64.  *
  65.  * Revision 1.1  1993/08/30  23:26:51  manchek
  66.  * Initial revision
  67.  *
  68.  */
  69.  
  70. struct frag {
  71.     struct frag *fr_link;    /* chain or 0 */
  72.     struct frag *fr_rlink;
  73.     char *fr_buf;            /* buffer or zero if master frag */
  74.     char *fr_dat;            /* data */
  75.     int fr_max;                /* size of buffer */
  76.     int fr_len;                /* length of data */
  77.     struct {
  78.         unsigned int ref : 16;    /* refcount (of chain if master, */
  79.                                 /* else frag) */
  80.         unsigned int dab : 1;    /* buffer is a databuf */
  81.         unsigned int spr : 1;    /* sparse data (csz, lnc valid) */
  82.     } fr_u;
  83.     int fr_csz;                /* chunk size */
  84.     int fr_lnc;                /* lead to next chunk */
  85.     int fr_seq;                /* sequence number. Used for mpp machines */
  86.     int fr_src;                /* message src. Used for mpp machines */
  87.     int fr_rip;                /* received inplace, don't put on recvq */
  88. #ifdef IMA_CSPP
  89.     int fr_num_unpacked;    /* so we know how much to flush */
  90. #endif
  91. };
  92.  
  93. struct frag *fr_new __ProtoGlarp__(( int n ));
  94. struct frag *fr_snew __ProtoGlarp__(( char *cp, int n ));
  95. void fr_unref __ProtoGlarp__(( struct frag *f ));
  96.  
  97.